package tool

import (
	"bufio"
	"encoding/json"
	"os"
)

type Config struct {
	AppName string `json:"app_name"`
	AppMode string `json:"app_mode"`
	AppHost string `json:"app_host"`
	AppPort string `json:"app_port"`
	Sms SmsConfig
	Database DatabaseConfig
}

//短信
type SmsConfig struct {
	SignName string `json:"sign_name"`
	TemplateCode string `json:"template_code"`
}

//数据库连接
type DatabaseConfig struct {
	Driver string `json:"driver"`
	User string `json:"user"`
	Password string `json:"password"`
	Host string `json:"host"`
	Port string `json:"port"`
	DbName string `json:"db_name"`
	Charset string `json:"charset"`
	ShowSql bool  `json:"show_sql"`
}

var cfg *Config = nil

/**
	解析文件
 */
func ParseConfig(path string) (*Config, error)  {
	//打开文件
	file, err := os.Open(path)
	if err != nil {
		panic(err)
	}

	defer file.Close()

	//读取文件内容
	reader := bufio.NewReader(file)
	//解析json赋值给结构体
	decoder := json.NewDecoder(reader)
	//遇到参数类型是interface就需要传入地址
	err = decoder.Decode(&cfg)
	if err != nil {
		return nil, err
	}
	return cfg, nil
}
